﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Entities;

public partial class pNegocioAlta3 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            chkLunes.Checked = true;
            chkMartes.Checked = true;
            chkMiercoles.Checked = true;
            chkJueves.Checked = true;
            chkViernes.Checked = true;
            chkSabado.Checked = true;
            chkDomingo.Checked = true;
            chkFeriado.Checked = true;
            lblError.Visible = false;
            if (Request["IDNegocio"] == null)
                Response.Redirect("pDefault.aspx");
        }
        else
        {
            lblError.Visible = false;
        }
    }


    protected void btnSiguiente_Click(object sender, EventArgs e)
    {
        try
        {
            if (ValidarDatos())
            {
                GuardarHorarioAtencion(long.Parse(Request["IDNegocio"]));
                Response.Redirect("pNegocioAlta4.aspx?IDNegocio=" + Request["IDNegocio"]);
            }

        }
        catch (Exception ex)
        {
            lblError.Visible = true;
            lblError.Text = "Error al intenar guardar los horarios de atencion, Descirpción del error: " + ex.Message;
        }

    }

    protected void btnRegresar_Click(object sender, EventArgs e)
    {
        Response.Redirect("pNegocioAlta2.aspx");
    }


    private bool ValidarDatos()
    {
        bool bRetornoOK = true;
        //Valida los horarios de la mañana
        if (int.Parse(cmnLunesMañanaDesde.Value.ToString()) >= int.Parse(cmnLunesMañanaHasta.Value.ToString()))
            bRetornoOK = false;

        if (int.Parse(cmnSabadoMañanaDesde.Value.ToString()) >= int.Parse(cmnSabadoMañanaHasta.Value.ToString()))
            bRetornoOK = false;

        if (int.Parse(cmnDomingoMañanaDesde.Value.ToString()) >= int.Parse(cmnDomingoMañanaHasta.Value.ToString()))
            bRetornoOK = false;

        if (int.Parse(cmbFeriadoMañanaDesde.Value.ToString()) >= int.Parse(cmbFeriadoMañanaHasta.Value.ToString()))
            bRetornoOK = false;

        //Valida los horarios de la tarde
        //lunes a viernes
        if (int.Parse(cmnLunesTardeHasta.Value.ToString()) >= 17 && int.Parse(cmnLunesTardeHasta.Value.ToString()) <=23 )
        {
            if (int.Parse(cmnLunesTardeDesde.Value.ToString()) >= 17 && int.Parse(cmnLunesTardeDesde.Value.ToString()) <= 23)
            {
                if (int.Parse(cmnLunesTardeDesde.Value.ToString()) >= int.Parse(cmnLunesTardeHasta.Value.ToString()))
                bRetornoOK = false;
            }
            else
                bRetornoOK = false;

        }
        else if ((int.Parse(cmnLunesTardeHasta.Value.ToString()) >= 0 && int.Parse(cmnLunesTardeHasta.Value.ToString()) <= 5))
        {
            if (int.Parse(cmnLunesTardeDesde.Value.ToString()) >= 0 && int.Parse(cmnLunesTardeDesde.Value.ToString()) <= 5)
            {
                if (int.Parse(cmnLunesTardeDesde.Value.ToString()) >= int.Parse(cmnLunesTardeHasta.Value.ToString()))
                    bRetornoOK = false;
            }
            else
                bRetornoOK = true;
        }


        //Sabado
        if (int.Parse(cmnSabadoTardeHasta.Value.ToString()) >= 17 && int.Parse(cmnSabadoTardeHasta.Value.ToString()) <= 23)
        {
            if (int.Parse(cmnSabadoTardeDesde.Value.ToString()) >= 17 && int.Parse(cmnSabadoTardeDesde.Value.ToString()) <= 23)
            {
                if (int.Parse(cmnSabadoTardeDesde.Value.ToString()) >= int.Parse(cmnSabadoTardeHasta.Value.ToString()))
                    bRetornoOK = false;
            }
            else
                bRetornoOK = false;

        }
        else if ((int.Parse(cmnSabadoTardeHasta.Value.ToString()) >= 0 && int.Parse(cmnSabadoTardeHasta.Value.ToString()) <= 5))
        {
            if (int.Parse(cmnSabadoTardeDesde.Value.ToString()) >= 0 && int.Parse(cmnSabadoTardeDesde.Value.ToString()) <= 5)
            {
                if (int.Parse(cmnSabadoTardeDesde.Value.ToString()) >= int.Parse(cmnSabadoTardeHasta.Value.ToString()))
                    bRetornoOK = false;
            }
            else
                bRetornoOK = true;
        }

        //Domingo
        if (int.Parse(cmnDomingoTardeHasta.Value.ToString()) >= 17 && int.Parse(cmnDomingoTardeHasta.Value.ToString()) <= 23)
        {
            if (int.Parse(cmnDomingoTardeDesde.Value.ToString()) >= 17 && int.Parse(cmnDomingoTardeDesde.Value.ToString()) <= 23)
            {
                if (int.Parse(cmnDomingoTardeDesde.Value.ToString()) >= int.Parse(cmnDomingoTardeHasta.Value.ToString()))
                    bRetornoOK = false;
            }
            else
                bRetornoOK = false;

        }
        else if ((int.Parse(cmnDomingoTardeHasta.Value.ToString()) >= 0 && int.Parse(cmnDomingoTardeHasta.Value.ToString()) <= 5))
        {
            if (int.Parse(cmnDomingoTardeDesde.Value.ToString()) >= 0 && int.Parse(cmnDomingoTardeDesde.Value.ToString()) <= 5)
            {
                if (int.Parse(cmnDomingoTardeDesde.Value.ToString()) >= int.Parse(cmnDomingoTardeHasta.Value.ToString()))
                    bRetornoOK = false;
            }
            else
                bRetornoOK = true;
        }

        //Feriado
        if (int.Parse(cmbFeriadoTardeHasta.Value.ToString()) >= 17 && int.Parse(cmbFeriadoTardeHasta.Value.ToString()) <= 23)
        {
            if (int.Parse(cmbFeriadoTardeDesde.Value.ToString()) >= 17 && int.Parse(cmbFeriadoTardeDesde.Value.ToString()) <= 23)
            {
                if (int.Parse(cmbFeriadoTardeDesde.Value.ToString()) >= int.Parse(cmbFeriadoTardeHasta.Value.ToString()))
                    bRetornoOK = false;
            }
            else
                bRetornoOK = false;

        }
        else if ((int.Parse(cmbFeriadoTardeHasta.Value.ToString()) >= 0 && int.Parse(cmbFeriadoTardeHasta.Value.ToString()) <= 5))
        {
            if (int.Parse(cmbFeriadoTardeDesde.Value.ToString()) >= 0 && int.Parse(cmbFeriadoTardeDesde.Value.ToString()) <= 5)
            {
                if (int.Parse(cmbFeriadoTardeDesde.Value.ToString()) >= int.Parse(cmbFeriadoTardeHasta.Value.ToString()))
                    bRetornoOK = false;
            }
            else
                bRetornoOK = true;
        }


        if (bRetornoOK == false)
        {
            lblError.Visible = true;
            lblError.Text = "Datos Incorrectos: El horario de fin de atención debe ser maryor al de Inicio de atención en todos los casos";
            return bRetornoOK;
        }

        //Validamos que haya selecionado al menos un día de atención
        if (!chkLunes.Checked && !chkMartes.Checked  && !chkMiercoles.Checked 
            && !chkJueves.Checked && !chkViernes.Checked && !chkSabado.Checked
            && !chkDomingo.Checked && !chkFeriado.Checked)
            bRetornoOK = false;

        if (bRetornoOK == false)
        {
            lblError.Visible = true;
            lblError.Text = "Datos Incorrectos: Debe seleccionar al menos un día de atención";
            return bRetornoOK;
        }
        return bRetornoOK;
    }

    private void GuardarHorarioAtencion(long IDNEgocio)
    {
        try
        {
            NegocioAtencion oNegocioAtencion = new NegocioAtencion();
            //IDNegocio
            oNegocioAtencion.Negocio = Negocio.BuscarUno(long.Parse(Request["IDNegocio"]),false);
            oNegocioAtencion.Lunes = chkLunes.Checked;
            oNegocioAtencion.Martes = chkMartes.Checked;
            oNegocioAtencion.Miercoles = chkMiercoles.Checked;
            oNegocioAtencion.Jueves = chkJueves.Checked;
            oNegocioAtencion.Viernes = chkViernes.Checked;
            oNegocioAtencion.Sabado= chkSabado.Checked;
            oNegocioAtencion.Domingo = chkDomingo.Checked;
            oNegocioAtencion.Feriado = chkFeriado.Checked;
            //Lunes a viernes
            oNegocioAtencion.LunesAViernesMañanaDesde = cmnLunesMañanaDesde.Text;
            oNegocioAtencion.LunesAViernesMañanaHasta = cmnLunesMañanaHasta.Text;
            oNegocioAtencion.LunesAViernesTardeDesde = cmnLunesTardeDesde.Text;
            oNegocioAtencion.LunesAViernesTardeHasta = cmnLunesTardeHasta.Text;
            //Sabado
            oNegocioAtencion.SabadoMañanaDesde = cmnSabadoMañanaDesde.Text;
            oNegocioAtencion.SabadoMañanaHasta = cmnSabadoMañanaHasta.Text;
            oNegocioAtencion.SabadoTardeDesde = cmnSabadoTardeDesde.Text;
            oNegocioAtencion.SabadoTardeHasta = cmnSabadoTardeHasta.Text;
            //Domingo
            oNegocioAtencion.DomingoMañanaDesde = cmnDomingoMañanaDesde.Text;
            oNegocioAtencion.DomingoMañanaHasta = cmnDomingoMañanaHasta.Text;
            oNegocioAtencion.DomingoTardeDesde = cmnDomingoTardeDesde.Text;
            oNegocioAtencion.DomingoTardeHasta = cmnDomingoTardeHasta.Text;
            //Feriados
            oNegocioAtencion.FeriadoMañanaDesde = cmbFeriadoMañanaDesde.Text;
            oNegocioAtencion.FeriadoMañanaHasta = cmbFeriadoMañanaHasta.Text;
            oNegocioAtencion.FeriadoTardeDesde = cmbFeriadoTardeDesde.Text;
            oNegocioAtencion.FeriadoTardeHasta = cmbFeriadoTardeHasta.Text;
            NegocioAtencion.Nuevo(oNegocioAtencion);
        }
        catch (Exception ex)
        {
            lblError.Visible = true;
            lblError.Text = "Error al guardar horarios de atención, descripción de error: " +  ex.Message;
        }

    }
}